local partsWithId = {} local awaitRef = {} local root = { ID = 0; Type = "Part"; Properties = { BottomSurface = Enum.SurfaceType.Smooth; Position = Vector3.new(-1.6161396503448486,7.035646438598633,-2.275775909423828); CFrame = CFrame.new(-1.6161396503448486,7.035646438598633,-2.275775909423828,1,0,0,0,1,0,0,0,1); Size = Vector3.new(5.892279148101807,12.071282386779785,5.271551609039307); TopSurface = Enum.SurfaceType.Smooth; Anchored = true; }; Children = { { ID = 1; Type = "Texture"; Properties = { Texture = "rbxassetid://5240658236"; }; Children = {}; }; { ID = 2; Type = "Decal"; Properties = { Texture = "rbxassetid://5240658236"; Face = Enum.NormalId.Left; }; Children = {}; }; }; }; local function Scan(item, parent) local obj = Instance.new(item.Type) if (item.ID) then local awaiting = awaitRef[item.ID] if (awaiting) then awaiting[1][awaiting[2]] = obj awaitRef[item.ID] = nil else partsWithId[item.ID] = obj end end for p,v in pairs(item.Properties) do if (type(v) == "string") then local id = tonumber(v:match("^_R:(%w+)_$")) if (id) then if (partsWithId[id]) then v = partsWithId[id] else awaitRef[id] = {obj, p} v = nil end end end obj[p] = v end for _,c in pairs(item.Children) do Scan(c, obj) end obj.Parent = parent return obj end Scan(root, nil).Parent = script